Saving and restoring the knowledge store or KStore that is an interlocking trees datastore can be an important feature in the commercialization of such datastores. In experimental trials we have reduced time required to save and restore KStores by several orders of magnitude, and the memory size needed, applying the principles we teach herein.
We have developed a system and various methods for creating and using interlocking trees datastores. In particular, these structures and methods have been described in copending patent applications U.S. Ser. Nos. 10/385,421, and 10/666,382, by inventor Mazzagatti. Additionally, we described a system in which such interlocking trees datastores could more effectively be used in U.S. Ser. No. 10/879,329. While the system and method we describe in this patent relate with particularity to the specific interlocking trees datastores which inventor Mazzagatti hereof described in the above-referenced patent (applications), the system and methods described herein may also be applicable to similar structures.
There are of course other uses for saved interlocking trees datastores. With the use of partial saves, or “partitions” of a whole interlocking trees datastore, there are even more uses. Therefore, one could use a save and restore process to do things such as saving interlocking trees datastores (or saving partial interlocking trees datastores) that have been built on one machine into multiple computing machines for similar but distributed or independent contemporaneous uses, for just one example. To put a real-world view on this, one can see knowledge-filled interlocking trees datastores being saved from a central machine and restored into cash registers across a nationwide company handling queries on inventory at point of sale without recourse to a central repository. One can see saving course material or sample knowledge bases for student use or modification on their individual computers. For any such uses, the save and restore processes we describe that are responsive to these needs can be used to move an interlocking trees datastores, and partial saves thereof, from any memory to any other.
While the interlocking trees datastores structure created by the system originally described in co-pending patent application U.S. Ser. No. 10/385,421 provides many useful traits for relating the data to itself in various ways, and for generating results to various inquiries without the need to generate special structures to obtain the results, heretofore there have been fundamental limits on its usefulness. One of the limitations was that the data structure in memory in a computer works while in place, but was not amenable to moving, or to saving and subsequent restoration. We previously had to re-teach, that is, re-create (or, more exactly, allow our inventive systems to re-create) an entire new copy or instantiation of the interlocking trees datastore every time we needed to move it or needed to shut down the computer system in which it existed. Thus, the availability of portability and longevity for interlocking trees datastores despite computer system failure were unavailable to the interlocking trees datastores prior to this development.
Given that the data structure we created did not exist in computer systems prior to our development, we found little in the way of prior designs for such systems to accommodate our need. Accordingly we were forced to design a specific way to save our structure so that it could be restored without losing the connections that make it what it is; that is, the pointer structure needed to be restored correctly, despite the changed address space in new systems into which it might be ported or in the same computer system from which it was saved and to which it needed to be restored. The elemental root nodes needed their data retained and access to their pointers into the structure restored. All of the nodes needed to have the same access to their pointers, even though they may all later be restored to different addresses, and we needed to accomplish this in an OS-independent and machine-independent way so that the interlocking trees datastore could be used in any computer environment.
Generally, a forest of interconnecting trees datastore is generated and/or accessed in a manner we have described before in earlier patent documents. The tree-based datastore comprises a first tree that depends from a first root node and may include a plurality of branches. Each of the branches of the first tree ends in a leaf node. Each leaf node may represent an end product, or a subcomponent node. A second root of the same tree-based datastore is linked to each leaf node representing an end product. Finally, the tree-based datastore comprises a plurality of trees in which the root node of each of these trees can be described as an elemental node. The root node of each of these trees may be linked to one or more nodes in one or more branches of the first tree. The nodes of the tree-based datastore contain only pointers to other nodes in the tree-based datastore, and may contain additional fields wherein one such may be a count field. Additionally, means to get probabilities of the coincidence of variables related to particular nodes as identified by desired contexts within one or more defined foci are described. Further, the application of logical operators to queries regarding such variables is shown.
After working with the save and restore system we describe in co-pending application Ser. No. 10/759,466, we discovered that we could operate save and restore significantly more efficiently. Accordingly, we describe those findings herein, along with some of the original disclosure from that application.